package br.eng.eliseu.gwt.gestaoWeb.model.usuario;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;

import br.eng.eliseu.gwt.gestaoWeb.client.mvp.PresenterMenuEnum;

@Entity
@SequenceGenerator(name="SQ_USUARIOACESSO", sequenceName="SQ_USUARIOACESSO")
@NamedQueries({
	@NamedQuery(name = "usuarioAcesso.porUsuarioSistema", query = "select u from UsuarioAcesso u where 1=1 "+
				"and u.usuarioSistema = :usuarioSistema "+"" +
				"order by tela")
})
public class UsuarioAcesso implements Serializable{

	private static final long serialVersionUID = 45735588539347328L;

	@Id
	@GeneratedValue(generator="SQ_USUARIOACESSO", strategy=GenerationType.AUTO)
	private Integer id;

	@ManyToOne
	@JoinColumn(name="usuarioSistema_id")
	private UsuarioSistema usuarioSistema;
	
	@Column(length=254)
	@Enumerated(EnumType.STRING)
	private PresenterMenuEnum tela;
	
	private Boolean visualizacao = false;

	private Boolean alteracao = false;
	
	private Boolean exclusao = false;
	
	private Boolean impressao = false;

	
	
/*
	public UsuarioAcesso() {
		super();
	}
	
	public UsuarioAcesso(Integer id, UsuarioSistema usuarioSistema, PresenterMenuEnum tela,
			Boolean visualizacao, Boolean alteracao, Boolean exclusao, Boolean impressao) {
		super();
		this.id = id;
		this.usuarioSistema = usuarioSistema;
		this.tela = tela;
		this.visualizacao = visualizacao;
		this.alteracao = alteracao;
		this.exclusao = exclusao;
		this.impressao = impressao;
	}
*/
	
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public UsuarioSistema getUsuarioSistema() {
		return usuarioSistema;
	}
	public void setUsuarioSistema(UsuarioSistema usuarioSistema) {
		this.usuarioSistema = usuarioSistema;
	}
	public PresenterMenuEnum getTela() {
		return tela;
	}
	public void setTela(PresenterMenuEnum tela) {
		this.tela = tela;
	}
	public Boolean getVisualizacao() {
		return visualizacao;
	}
	public void setVisualizacao(Boolean visualizacao) {
		this.visualizacao = visualizacao;
	}
	public Boolean getAlteracao() {
		return alteracao;
	}
	public void setAlteracao(Boolean alteracao) {
		this.alteracao = alteracao;
	}
	public Boolean getExclusao() {
		return exclusao;
	}
	public void setExclusao(Boolean exclusao) {
		this.exclusao = exclusao;
	}
	public Boolean getImpressao() {
		return impressao;
	}
	public void setImpressao(Boolean impressao) {
		this.impressao = impressao;
	}
	
}
